﻿using System;
using System.Collections.Generic;

namespace Serene
{
    ///<summary>
    /// Specifies a criteria
    ///</summary>
    public interface ICriteria
    {
        ///<summary>
        /// When passed a status and state bag, this method determines the success of this criteria class
        ///</summary>
        ///<param name="status">Current status</param>
        ///<param name="criteriaState"></param>
        ///<returns></returns>
        bool MeetsCriteria(IReadonlyStatus status, IDictionary<string, string> criteriaState);
        CriteriaType Type { get; }
    }
}
